草庐IT

java - 在Java中动态加载一个类

全部标签

ruby - 使用 RABL 渲染一个简单的 Ruby 哈希

我有一个ruby​​散列,我想使用RABL渲染它.哈希看起来像这样:@my_hash={:c=>{:d=>"e"}}我正在尝试使用一些RABL代码来呈现它:object@my_hash=>:some_objectattributes:dnode(:c){|n|n[:d]}但我收到了{"c":null}我如何使用RABL渲染它? 最佳答案 这适用于任意哈希值。objectfalse@values.keys.eachdo|key|node(key){@values[key]}end使用Rails3.2.13和Ruby2.0.0-p195

ruby-on-rails - 预加载 : The right way to do things

我正在运行RubyonRails3.1。我阅读了以下关于eagerloading的文章和文档,我想找到一种正确的方法来做事:EagerLoadingAssociations[官方文档]ActiveRecord::Associations::ClassMethods(参见“关联的预加载”部分)[官方文档]Eagerloading[博客文章]#2说:NotethatusingconditionslikePost.includes([:author,:comments]).where(['comments.approved=?',true]).allcanhaveunintendedcons

ruby - 如何强制 Ruby 的 CSV 输出中的一个字段用双引号引起来?

我正在使用Ruby的内置CSV生成一些CSV输出。一切正常,但客户希望输出中的名称字段包含双引号,以便输出看起来像输入文件。例如,输入看起来像这样:1,1.1.1.1,"FirstnameLastname",more,fields2,2.2.2.2,"FirstnameLastname,Jr.",more,fieldsCSV的正确输出如下所示:1,1.1.1.1,FirstnameLastname,more,fields2,2.2.2.2,"FirstnameLastname,Jr.",more,fields我知道CSV的做法是正确的,因为它没有双引号第三个字段,只是因为它嵌入了空格,

ruby - 具有动态条件的 rspec `its` 语法

我真的很喜欢将contexts、subjects和its与rspec一起使用来真正清理我的测试代码。典型例子:context"asauser"dosubject{Factory:user}its(:name){should=="Bob"}end但我想不通的是如何使这种情况动态化(即基于其他对象)。its似乎对block内的属性进行实例评估,因此我无法访问它周围的所有内容。我很想做这样的事情:its(:name){should==subject.contact.name}但我看不出有什么方法可以实现这一点。有谁知道是否有一些方法代理到这个实例eval来访问原始对象?或者如果有任何其他方法

ruby-on-rails - 你如何生成一个 EventMachine "inside"一个 Rails 应用程序?

我有一个Rails应用程序,我希望为其添加某种WebSocket支持。从各种谷歌搜索来看,最好的基于Ruby的WebSocket解决方案似乎是em-websocket在EventMachine上运行。我想知道是否有办法将EventMachinereact器“集成”到Rails中?我在哪里放置初始化代码?这是完成此任务的正确方法吗?我看过this返回Sinatra执行EventMachineGET请求的示例,但这并不是我想要的。感谢任何帮助。 最佳答案 您不能在Rails本身内部运行Eventmachine引擎,因为它是一个持久的运行

ruby-on-rails - 在 IRB 中重新加载 ruby​​gem

有没有办法在内存中“重新加载”或“刷新”rubygem?当我在irb中玩游戏时,偶尔我想修改我的gem文件,如果我需要相同的gem,它不会更新到内存中并给出输出“false”。目前我必须退出IRB,重新进入IRB,然后再次需要gem,必须有更好的方法...它是什么? 最佳答案 正如其他人所建议的,您可以使用Kernel#load。但是,不要浪费时间查找和加载每个gem文件,因为所有需要的文件都存储在$"中。有了这些知识,这里有一个重新加载irb命令:defreload(require_regex)$".grep(/^#{requir

ruby - 在 Ruby 中使用一个变量的值作为另一个变量名

我刚刚开始学习Ruby,我编写了一个程序来生成一些数字并将它们分配给变量@one、@two、@three等。然后用户可以通过输入它来指定要更改的变量姓名(例如一个)。然后我需要做一些类似“@[valueofinout]=asd”的事情。我该怎么做,是否有更好的方法,因为我正在考虑的方式似乎不鼓励?我找到了x="myvar"myvar="hi"eval(x)->"hi"但我不完全明白为什么需要第二行。就我而言,我会使用类似的东西@one="21"input="one"input="@"+inputchangeto="22"eval(input)->changeto

ruby - 如何在 Ruby 中模拟类 Java 的注解?

如何在ruby中模拟类Java注解?(好吧,我有答案了,概括一下http://bens.me.uk/2009/java-style-annotations-in-ruby) 最佳答案 本文改编自apieceofcodeIwroteinananswertoanotherquestion几个星期前,虽然它当然不是原创的。这是一个著名的Ruby习语,毕竟它已经使用了很多年,至少从rakes的desc方法开始.moduleAnnotationsdefannotations(meth=nil)return@__annotations__[me

Ruby:动态生成attribute_accessor

我正在尝试从散列(使用嵌套散列)生成attr_reader,以便它自动镜像instance_variable创建。这是我目前所拥有的:data={:@datetime=>'2011-11-23',:@duration=>'90',:@class=>{:@price=>'£7',:@level=>'all'}}classEvent#attr_reader:datetime,:duration,:class,:price,:leveldefinit(data,recursion)data.eachdo|name,value|ifvalue.is_a?Hashinit(value,recur

ruby - 一个更好的 Ruby 实现,将十进制舍入到最接近的 0.5

这看起来非常低效。谁能给我一个更好的Ruby方式。defround_valuex=(self.value*10).round/10.0#roundstotwodecimalplacesr=x.modulo(x.floor)#findsremainderf=x.floorself.value=casewhenr.between?(0,0.25)fwhenr.between?(0.26,0.75)f+0.5whenr.between?(0.76,0.99)f+1.0endend 最佳答案 classFloatdefround_point